output: html_document


A note on dependencies

DEMO: Leaflet map


# Create a leaflet map widget
leaflet() %>%
  # Add default OpenStreetMap tiles to the map
  addTiles() %>%
  # Set the initial view of the map
  setView(lng = -157.858333, lat = 21.306944, zoom = 10) %>%
  # Add a marker for a specific location (Honolulu)
  addMarkers(lng = -157.858333, lat = 21.306944, popup = "Aloha from Honolulu! 🌺")


# Read GeoJSON as sf object
ahupuaa_data <- st_read("data/Ahupuaa.geojson")
#> Reading layer `Ahupuaa' from data source 
#>   `/Users/kishi/Documents/Dev/ethnobotany-resources/data/Ahupuaa.geojson' 
#>   using driver `GeoJSON'
#> Simple feature collection with 727 features and 9 fields
#> Geometry type: POLYGON
#> Dimension:     XY
#> Bounding box:  xmin: -160.247 ymin: 18.91069 xmax: -154.8066 ymax: 22.23529
#> Geodetic CRS:  WGS 84
raingauge_data <- st_read("data/Rain_Gauges.geojson")
#> Reading layer `Rain_Gauges' from data source 
#>   `/Users/kishi/Documents/Dev/ethnobotany-resources/data/Rain_Gauges.geojson' 
#>   using driver `GeoJSON'
#> Simple feature collection with 1107 features and 97 fields
#> Geometry type: POINT
#> Dimension:     XY
#> Bounding box:  xmin: -159.7822 ymin: 18.91617 xmax: -154.82 ymax: 22.23135
#> Geodetic CRS:  WGS 84

# Calculate centroids for labeling
centroids <- st_centroid(ahupuaa_data)
#> Warning: st_centroid assumes attributes are constant over geometries

# Create map
map <- leaflet() %>%
  addTiles() %>%
  setView(lng = -157.8583, lat = 20.9078, zoom = 7)

# Add ahupuaa polygons
map <- map %>%
  addPolygons(
    data = ahupuaa_data,
    fillColor = "lightblue",
    fillOpacity = 0.3,
    color = "red",
    weight = 2,
  )

# Add markers at centroids
map <- map %>%
  addMarkers(
    data = centroids,
    popup = ~paste0(
      "<h3>", ahupuaa, "</h3>",
      "<p><strong>Moku:</strong> ", moku, "</p>",
      "<p><strong>Mokupuni:</strong> ", mokupuni, "</p>",
      "<p><strong>Area:</strong> ", gisacres, " ac</p>"
    ),
    label = ~ahupuaa
  )
# Add raingauge circle markers
map <- map %>%
  addCircleMarkers(
    data = raingauge_data,
    group = "Raingauges",
    radius = 8,
    fillColor = "blue",
    color = "white",
    weight = 2,
    fillOpacity = 0.8,
    popup = ~paste0(
      "<h3>", name, "</h3>",
      "<p><strong>Elevation:</strong> ", elevft, "</p>",
      "<p>", stationsta, "</p>"
    ))

map

Scraping BM-EB


# --- Install required packages only if missing ---


# --- Define the URL ---
url <- "https://data.bishopmuseum.org/ethnobotanydb/ethnobotany.php?b=list&o=1"

# --- Read the HTML content ---
page <- read_html(url)

# --- Extract all <table> elements ---
tables <- page %>% html_nodes("table")

# --- Check how many tables are found ---
length(tables)
#> [1] 1

# --- Convert the first table to a data frame ---
ethno_table <- tables[[1]] %>% html_table(fill = TRUE)

# --- Preview the data ---
glimpse(ethno_table)
#> Rows: 145
#> Columns: 3
#> $ `Hawaiian Name`   <chr> "‘a‘ali‘i", "a‘e (Sapindus)", "a‘e (Zanthoxylem)", "…
#> $ `Scientific Name` <chr> "Dodonaea viscosa", "Sapindus saponaria", "Zanthoxyl…
#> $ `Vernacular Name` <chr> "none", "soapberry", "none", "none", "none", "sedge"…

# Optional: View first rows
head(ethno_table)
#> # A tibble: 6 × 3
#>   `Hawaiian Name`   `Scientific Name`       `Vernacular Name`
#>   <chr>             <chr>                   <chr>            
#> 1 ‘a‘ali‘i          Dodonaea viscosa        none             
#> 2 a‘e (Sapindus)    Sapindus saponaria      soapberry        
#> 3 a‘e (Zanthoxylem) Zanthoxylum (4 species) none             
#> 4 ‘ahakea           Bobea (4 species)       none             
#> 5 ‘āheahea          Chenopodium oahuense    none             
#> 6 ‘ahu‘awa          Cyperus javanicus       sedge

# --- Create 'data' directory if it doesn't exist ---
if (!dir.exists("data")) {
  dir.create("data")
}

# --- Save the table as CSV in the 'data' directory ---
write.csv(ethno_table, file = "data/ethno_table.csv", row.names = FALSE)

Display BM EB Table


bmeb <- read.csv("data/ethno_table.csv")

kable(bmeb, caption = "Ethnobotany plants in Bishop Museum")
Ethnobotany plants in Bishop Museum
Hawaiian.Name Scientific.Name Vernacular.Name
’a‘ali‘i Dodonaea viscosa none
a‘e (Sapindus) Sapindus saponaria soapberry
a‘e (Zanthoxylem) Zanthoxylum (4 species) none
’ahakea Bobea (4 species) none
’āheahea Chenopodium oahuense none
’ahu‘awa Cyperus javanicus sedge
aiea Nothocestrum (4 species) none
’aka‘akai Schoenoplectus lacustris great bulrush
’ākala Rubus (2 species) Hawaiian raspberry
’ākia Wikstroemia (12 species) none
’akoko Chamaesyce (16 species) spurge
’aākōlea Athyrium microphyllum none
’ākulikuli Sesuvium portulacastrum sea purslane
’āla‘a Pouteria sandwicensis none
’ala‘ala wai nui Peperomia (24 species) none
alahe‘e Psydrax odorata none
alani Melicope (47 species) none
ali‘ipoe Canna indica Indian-shot
aloalo Hibiscus (4 species) none
’ama‘u Sadleria cyatheoides none
’ape Alocasia macrorrhizos elephant’s ear
’auhuhu Tephrosia purpurea none
’awa Piper methysticum kava
’awapuhi Zingiber zerumbet shampoo ginger, wild ginger
’āwikiwiki Canavalia (6 species) none
hala Pandanus tectorius screw pine
hala pepe Pleomele (6 species) none
hame Antidesma (2 species) none
hao Rauvolfia sandwicensis none
hāpu‘u Cibotium (2 species) tree fern
hau Hibiscus tiliaceus none
hinahina Heliotropium anomalum var. argentea heliotrope
hō‘awa Pittosporum (11 species) none
hoi Dioscorea bulbifera bitter yam, air potato
hōlei Ochrosia (4 species) none
’ie‘ie Freycinetia arborea none
’iliahi Santalum (4 species) sandalwood
’ilie‘e Plumbago zeylanica leadwort
’ilima Sida fallax none
ipu Lagenaria siceraria bottle gourd
kalia Elaeocarpus bifidus none
kalo Colocasia esculenta taro
kamani Calophyllum inophyllum Alexandrian laurel
kauila (Alphitonia) Alphitonia ponderosa none
kauila (Colubrina) Colubrina oppositifolia none
kauna‘oa Cuscuta sandwichiana dodder
kāwa‘u Ilex anomala Hawaiian holly
kāwelu Eragrostis variabilis none
Cordyline fruticosa ti
kī nehe Bidens pilosa Spanish needle, beggartick
Saccharum officinarum sugarcane
koa Acacia koa none
koai‘a Acacia koaia none
koali ’ai Ipomoea cairica ivy-leaved morning glory
koali ’awa Ipomoea indica none
kohekohe Eleocharis (2 species) none
koki‘o Kokia & Hibiscus (5 species) none
koki‘o ke‘oke‘o Hibiscus arnottianus none
kōlea Myrsine (20 species) none
kolokolo kuahiwi Lysimachia (2 species) none
kolomona Senna gaudichaudii none
ko‘oko‘olau Bidens (19 species) none
kōpiko Psychotria (11 species) none
kou Cordia subcordata none
kūkaenēnē, Coprosma ernodeides none
kūkaepua‘a Digitaria setigera itchy crabgrass
kukui Aleurites moluccana candlenut, tung tree
kupukupu Nephrolepis cordifolia sword fern
la‘amia Cresentia cujete calabash tree
lama Diospyros (2 species) persimmon, ebony
laua‘e Phymatosorus grossus maile-scented fern
laukahi kuahiwi Plantago (3 species) plantain
lehua papa Metrosideros rugosa none
loulu Pritchardia (22 species) native fan palm
ma‘aloa Neraudia melastomifolia none
mai‘a Musa x paradisiaca banana
mai‘a hē‘ī Musa troglodytarum banana (Tahiti)
maile Alyxia stellata none
makaloa Cyperus laevigatus umbrella sedge
māmaki Pipturus (4 species) none
māmane, Sophora chrysophylla none
manono Kadua (3 species) none
ma‘o (Abutilon) Abutilon incanum hoary abutilon
ma‘o (Gossypium) Gossypium tomentosum Hawaiian cotton
maua Xylosma hawaiiense none
mau‘u lāili Sisyrinchium acre none
mēhamehame Flueggea neowawraea none
milo Thespesia populnea portia tree
moa Psilotum nudum upright whisk fern
mokihana Melicope anisata none
na‘ena‘e Dubautia (24 species) none
naio Myoporum sandwicense false sandalwood, bastard sandalwood
nānū Gardenia (3 species) Hawaiian gardenia
naupaka kahakai Scaevola taccada beach naupaka
naupaka kuahiwi Scaevola (9 species) dwarf naupaka (S. coriacea
nehe Lipochaeta & Melanthera (20 species) none
nīoi Eugenia (2 species) none
niu Cocos nucifera coconut
noni Morinda citrifolia Indian mulberry
nuku ’i‘iwi Strongylodon ruber none
’ohai Sesbania tomentosa none
’ōhā wai Clermontia (22 species) none
’ohe Schizostachyum glaucifolium native bamboo, Polynesian bamboo
’ōhelo Vaccinium (3 species) blueberry
’ohe makai Reynoldsia sandwicensis none
’ohe ’ohe Tetraplasandra (8 species) none
’ōhi‘a ’ai Syzygium malaccense mountain apple, Malay apple
’ōhi‘a hā Syzygium sandwicensis none
’ōhi‘a lehua Metrosideros (2 species) none
’ōkaha Asplenium nidus bird’s nest fern
’ōlapa Cheirodendron (5 species) none
’ōolena Curcuma longa turmeric
olomea Perrottetia sandwicensis none
olonā Touchardia latifolia none
olopua Nestegis sandwicensis none
ūpuhe Urera (2 species) none
pā‘ihi Rorippa sarmentosa none
pa‘iniu Astelia (3 species) none
pala Marattia douglasii none
pala‘ā Sphenomeris chinensis lace fern
palapalai Microlepia strigosa lace fern
pāmoho Nephrolepis exaltata subsp. hawaiiensis sword fern
pāpala Charpetiera (5 species) none
pāpala kōpau Pisonia (5 species) none
pi‘ia Dioscorea pentaphylla pi‘a Hawai‘i, wild yam
pia or arrowroot Tacca leontopetaloides Polynesian arrowroot
pili Heteropogon contortus tanglehead, twisted beardgrass, pili grass
pilo Coprosma (12 species) none
pōhinahina Vitex rotundifolia beach vitex
pōhuehue Ipomoea pes-caprae beach morning glory
pōpolo Solanum americanum glossy nightshade
pōpolo kū mai Phytolacca sandwicensis pokeberry, pokeweed
pua kala Argemone glauca prickly poppy
pūkiawe Leptecophylla tameiameiae none
’uala Ipomoea batatas sweet potato
’uhaloa Waltheria indica none
uhi Dioscorea alata yam
uhiuhi Caesalpinia kavaiensis none
’uki Machaerina (2 species) none
’uki‘uki Dianella sandwicensis none
’ūlei Osteomeles anthyllidifolia none
’ulu Artocarpus altilis breadfruit
uluhe Dicranopteris linearis false staghorn fern
wauke Broussonetia papyrifera paper mulberry
wiliwili Erythrina sandwicensis none

Webcrawler

Coded with assistance from ChatGPT.

Currently should have the following functionality:


                                        # Base URL (pagination placeholder)
base_url_template <- "https://data.bishopmuseum.org/ethnobotanydb/ethnobotany.php?b=list&o=%d"

                                        # Output files for resume
depth1_file <- "data/ethnobotany_depth1_progress.csv"
final_file  <- "data/ethnobotany_full_normalized.csv"

                                        # ---- Step 1: Load existing depth-1 data if resuming ----
if (file.exists(depth1_file)) {
    depth1_dt <- fread(depth1_file)
    message("Resuming with ", nrow(depth1_dt), " depth-1 rows already scraped.")
} else {
    depth1_dt <- data.table()
}
#> Resuming with 27260 depth-1 rows already scraped.

                                        # ---- Step 2: Scrape depth-1 pages ----
scrape_depth1_page <- function(page_number) {
    url <- sprintf(base_url_template, page_number)
    message("Scraping depth-1 page: ", url)

    page <- tryCatch(read_html(url), error = function(e) return(NULL))
    if (is.null(page)) return(NULL)

    tbl_node <- page %>% html_node("table")
    if (is.na(tbl_node) || length(tbl_node) == 0) return(NULL)

    main_table <- tbl_node %>% html_table(fill = TRUE)
    if (nrow(main_table) == 0) return(NULL)

    dt <- as.data.table(main_table)
    setnames(dt, make.names(names(dt), unique = TRUE))

                                        # Hawaiian Name links
    hawaiian_nodes <- page %>%
        html_nodes("table tr td:nth-child(1) a")

    hawaiian_links <- hawaiian_nodes %>%
        html_attr("href") %>%
        url_absolute(url)

    dt[, Detail_URL := hawaiian_links]

    Sys.sleep(runif(1, 1, 3))  # polite random pause
    return(dt)
}

                                        # If no depth-1 data yet, start scraping from page 1
if (nrow(depth1_dt) == 0) {
    all_depth1 <- list()
    page_number <- 1

    repeat {
        dt <- scrape_depth1_page(page_number)
        if (is.null(dt)) break
        all_depth1[[length(all_depth1) + 1]] <- dt
        depth1_dt <- rbindlist(all_depth1, fill = TRUE)
        fwrite(depth1_dt, depth1_file)  # save progress
        page_number <- page_number + 1
    }
}

                                        # ---- Step 3: Scrape depth-2 detail pages ----
scrape_detail_page <- function(url) {
    message("   Depth-2: ", url)

    page <- tryCatch(read_html(url), error = function(e) return(NULL))
    if (is.null(page)) return(list())

    detail_tables <- page %>%
        html_nodes("table") %>%
        html_table(fill = TRUE)

    if (length(detail_tables) == 0) return(list())

    detail_df <- detail_tables[[1]]

    if (ncol(detail_df) >= 2) {
        labels <- str_trim(detail_df[[1]])
        values <- str_trim(detail_df[[2]])
        names(values) <- make.names(labels, unique = TRUE)
        values <- as.list(values)
    } else {
        values <- list()
    }

    Sys.sleep(runif(1, 1, 3))  # polite random pause
    return(values)
}

                                        # ---- Step 4: Resume-aware depth-2 scraping ----
if (file.exists(final_file)) {
    final_dt <- fread(final_file)
    scraped_urls <- unique(final_dt$Detail_URL)
} else {
    final_dt <- NULL
    scraped_urls <- character()
}

                                        # Filter only URLs we haven't scraped yet
pending_urls <- setdiff(depth1_dt$Detail_URL, scraped_urls)
message("Depth-2 pages remaining: ", length(pending_urls))
#> Depth-2 pages remaining: 0

                                        # Scrape only pending detail pages
detail_list <- map(pending_urls, scrape_detail_page)

                                        # Convert to data.table
details_dt <- rbindlist(detail_list, fill = TRUE)

                                        # Match them back to depth1 rows
new_data <- depth1_dt[Detail_URL %in% pending_urls]
final_batch <- cbind(new_data, details_dt)

                                        # Append to final dataset
if (!is.null(final_dt)) {
    final_dt <- rbindlist(list(final_dt, final_batch), fill = TRUE)
} else {
    final_dt <- final_batch
}

                                        # Save progress
fwrite(final_dt, final_file)

                                        # Prep final_dt for depth 2 crawling
colnames(final_dt)[grepl("URL", colnames(final_dt))] <- "URL"
final_dt[["depth"]] <- rep(2, dim(final_dt)[1])

Depth 2 Crawler


# Helper to extract <b>Label</b>: Value pairs from a detail page
extract_bold_fields <- function(url) {
  page <- tryCatch(read_html(url), error = function(e) return(NULL))
  if (is.null(page)) return(list())
  
  name_div <- page %>% html_node("div#name")
  if (is.na(name_div)) return(list())
  
  b_nodes <- name_div %>% html_nodes("b")
  
  fields <- list()
  for (b in b_nodes) {
    label <- b %>% html_text(trim=TRUE)
    value <- b %>% html_nodes(xpath = "following-sibling::text()[1]") %>% html_text(trim=TRUE)
    value <- sub("^\\s*:\\s*", "", value)
    fields[[make.names(label)]] <- value
  }
  return(fields)
}

# Use URLs from final_dt
detail_urls <- final_dt$URL

# Scrape all detail pages (limit for demo, e.g. first 10)
detail_data <- purrr::map(detail_urls[1:100], extract_bold_fields)

# Convert to data.frame
details_df <- rbindlist(detail_data, fill=TRUE)

# Preview
head(details_df)
#>                                                                    Hawaiian.Name.s.
#>                                                                              <char>
#> 1:                       ‘a‘ali‘i, ‘a‘ali‘i kū makani, ‘a‘ali‘i kū ma kua, kumakani
#> 2:                                                                      a‘e, mānele
#> 3:                                                               a‘e, mānele, hea‘e
#> 4:                                                      ‘ahakea, ‘ahakea lau li‘i (
#> 5: ‘āheahea, ‘ahea, ‘āhewahewa, alaweo, alaweo huna (Ni‘ihau), ‘āweoweo, kāha‘iha‘i
#> 6:                                                               ‘ahu‘awa, ‘ehu‘awa
#>            Scientific.Name Vernacular.Name         Family     Status
#>                     <char>          <char>         <char>     <char>
#> 1:        Dodonaea viscosa            none    Sapindaceae indigenous
#> 2:      Sapindus saponaria       soapberry    Sapindaceae indigenous
#> 3: Zanthoxylum (4 species)            none       Rutaceae    endemic
#> 4:       Bobea (4 species)            none      Rubiaceae    endemic
#> 5:    Chenopodium oahuense            none Chenopodiaceae    endemic
#> 6:       Cyperus javanicus           sedge     Cyperaceae indigenous
#>         Authority
#>            <char>
#> 1:          Jacq.
#> 2:             L.
#> 3:               
#> 4:               
#> 5: (Meyen) Aellen
#> 6:         Houtt.
#>                                                                                                          Description
#>                                                                                                               <char>
#> 1:                                                                                                       Shrub/tree.
#> 2:                                                                           Tree, up to 25 m tall; bark pale brown.
#> 3:                                                                Small tree to 3-6 m tall, bark gray to dark brown.
#> 4: Trees, all 4 species up to 10 m tall, wood is a dull orange-brown & becomes dark gold when rubbed with kukui oil.
#> 5:                                                                      Lightly scented shrubs, sometimes tree-like.
#> 6:                                                                                   Tall perennials 50-150 cm tall.
#>                                                                                                                                                                      Habitat
#>                                                                                                                                                                       <char>
#> 1: Found on open sites, ridges, lava, low pastures, shrublands, dry to mesic and wet forest, and subalpine shrubland, 3–2347 m on all main islands except Kaho‘olawe (Wagner
#> 2:                                                                                       Occurs in mesic forest 900–1370 m (Hualalai, Mauna Loa, & Kilauea, Hawai‘i) (Wagner
#> 3:                                                                                                                                                                          
#> 4:                                                                                                                                                                          
#> 5:                       Occuring as a common or occasional element of dry habitats, ranging from 0–2520 m from coastal zones to  dry forest and subalpine shrubland (Wagner
#> 6:                                                 Common in marshy areas, stream banks, loi kalo, rocky coasts, and cliffs 0-460  m on most main islands and Midway (Wagner
#>                                                                                                                                                               Medicines
#>                                                                                                                                                                  <char>
#> 1:                                                                                           In a treatment termed holoina, ‘a‘ali‘i leaves are mixed with ala‘a bark (
#> 2:                                                                                                                                                                     
#> 3:                                                                                                                                                                     
#> 4:                                                                                  In a treatment for abcesses ‘ahakea bark is ground with puakala ku kula root bark (
#> 5: This plant is used to treat ‘ea (thrush, etc.) and pa‘ao‘ao (ailments). The leaf buds are used to treat children; the bark is ingested [sometimes with niu (coconut,
#> 6:                                                                           To treat ‘ea in children, ‘ahu‘awa stems and flowers are used with green kukui fruit sap (
#>                                                                                                                                                                                                                                                                                                                                                                                                                                                       Non.Medicinal.Uses
#>                                                                                                                                                                                                                                                                                                                                                                                                                                                                   <char>
#> 1: Wood is hard, heavy, durable; sometimes used for houseposts and spears; many uses for fruits, such as a medicine, dye, and in lei, flowers also used in lei (Abbott 1992:68; Krauss 1993:65; Little & Skolmen 1989:180; Malo 1951:21). Pioneer species (Lamb 1981:78); made into "bait sticks", these were shaped and then charred in the fire (Krauss 1993:45). In the Ethnology Collection at Bishop Museum there is a post-contact example of the wood made into a
#> 2:                                                                                                                                                                                                                                                                                                                                                       Seeds strung into lei and necklaces (Krauss 1993:78). Hard wood used for spears & other purposes (Malo 1951:22)
#> 3:                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
#> 4:                                                                                                                                                                                           Yellow wood used for canoes; most favored for gunwales (Krauss 1993:50), poi pounding boards, canoe paddles (Malo 1951:20), and door and door–frames (Krauss 1993:57). In the Ethnology Collection at Bishop Museum there is a post-contact example of the wood made into a
#> 5:                                                                                                                                                                                 Leaves cooked and eaten as greens (Hillebrande 1888:380; Malo 1951:23). Part of composite fish hooks (Kamakau 1976:77; Krauss 1993:43) "The kahuna ho‘omanamana called this plant ‘iloe holokula, because it was used everywhere to induce death…[also used] with the ‘ākia lau nui (
#> 6:                                                                                                                                                                                                                                                                                                                                                                                                                       This indigenous plant was often cultivated. The
#>    Specific.gravity.of.wood Famous.Locations
#>                      <char>           <char>
#> 1:                  unknown                 
#> 2:                      0.8                 
#> 3:                  unknown                 
#> 4:                  unknown                 
#> 5:                  unknown                 
#> 6:                  unknown                 
#>                                                                            Mele
#>                                                                          <char>
#> 1: "Hoa pili o ke ‘a‘ali‘i." line in "Sweet Lei Mamo" (Elbert & Mahoe 1970:92).
#> 2:                                                                             
#> 3:                                                                             
#> 4:                                                                             
#> 5:                                                                             
#> 6:                                                                             
#>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       X.Ōlelo.Noeau
#>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              <char>
#> 1: [I] He ‘a‘ali‘i ku makani mai au; ‘a‘ohe makani nana e kula‘i. I am a wind-resting ‘a‘ali‘i; no gale can push me over. A boast meaning "I can hold my own even in the face of difficulities." The ‘a‘ali‘i bush can stand the worst of gales, twisting and bending but seldom breaking off or falling over. [II] He hina na ka ‘a‘ali‘i kumakani, he ‘ula‘a pu me ka lepo.  When the wind-resting ‘a‘ali‘i falls, it lifts the sod up with its roots. A boast: When I, a powerful man, fall, others will fall with me. [III] He iki ‘a‘ali‘i ku makani o Pi‘iholo. A small, wind-resting ‘a‘ali‘i bush of Pi‘iholo. A small but powerful person.
#> 2:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
#> 3:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
#> 4:                                                                                                                                                                                                                                                                                                                                                                                                                                                                         I ke aha ho‘i?  I ka ‘ahakea!  Why? The ‘ahakea!  A saucy retort to the question "Why?"  A play on aha (why) and ‘aha in the word ‘ahakea. The ‘ahakea is a native tree.
#> 5:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
#> 6:                                                                                                                                                                                                                            [I] Aia aku la paha i Waikiki i ka ‘imi ‘ahu‘awa. Perhaps gone to Waikiki to seek the ‘ahu‘awa sedge. Gone where disappointment is met. A play on ahu (heap) and ‘awa (sour). [II] O Honu‘apo aku no ia o kahi  o ka ‘ahu‘awa. That is Honu‘apo where the ‘ahu‘awa grows. A Ka‘u saying about disappointment. The ‘ahu‘awa was much used as fiber for straining ‘awa. A play on hoka (to strain, to be disappointed).
#>    Dye.Color.and.Parts Kino.lau Location.on.Bishop.Museum.Kalihi.Campus
#>                 <char>   <char>                                  <char>
#> 1:      Red (capsules)                                                 
#> 2:                                                                     
#> 3:                                                                     
#> 4:                                                                     
#> 5:                                                                     
#> 6:                                                  Next to Castle Bldg
#>                                                                                                                                                                                                                                                                                                        Propagation.Information
#>                                                                                                                                                                                                                                                                                                                         <char>
#> 1:        Easy. Presoaked seeds sprout in 2-4 weeks, when 2 sets of leaves appear transplant into individual pots; broad elevation range but must drain well; will grow well in a large pot on apartment lanai (Bornhorst 1996:37–8; Bornhorst and Rauch 1994:10; Culliney and Koebele 1999:35–37; Nagata 1992:1993 addendum).
#> 2:                                                                                                             Easy. Grown from seeds, should be nicked w/ a file (scarified) or soaked; climate adaptable (Bornhorst 1996:55–56; Bornhorst and Rauch 1994:14–15; Culliney and Koebele 1999:53–54; Nagata 1992:1993 addendum).
#> 3:                                                                                                                                                                                                                                                                                                                            
#> 4:                                                                                                                                                                                                                                                                                                                            
#> 5: Easy. Seed bearing utricles are easily collected by hand, don't bury deep, seeds germinate in 1 week & continues for 2–3 weeks; 1st or 2nd set of true leaves appear in 1 month & should be transplanted to indivudual pots, 2-3 months after it reaches 1 foot it should be planted out (Culliney and Koebele 1999:39–41).
#> 6:                                                                                                                                                                                                                                                                                                                            
#>                                                                 Seed
#>                                                               <char>
#> 1:           Seed length approximately 2.2 mm. Photograph: B.Kennedy
#> 2:           Seed length approximately 10 mm. Photograph: B.Kennedy.
#> 3: Seed length approximately 8.5 mm. Photograph: B.Kennedy. Species:
#> 4:   Seed length approximately 4 mm. Photograph: B.Kennedy. Species:
#> 5:            Seed length approximately 1 mm. Photograph: B.Kennedy.
#> 6: Seed length approximately 1.5 mm. Photograph: B.Kennedy. Species:
#>                                                  Microscopy
#>                                                      <char>
#> 1:  Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom
#> 2:  Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom
#> 3:                                                     <NA>
#> 4:                                                     <NA>
#> 5: Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom.
#> 6:                                                     <NA>
#>                                               Cross.Section
#>                                                      <char>
#> 1:  Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom
#> 2:  Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom
#> 3:                                                     <NA>
#> 4:                                                     <NA>
#> 5: Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom.
#> 6:                                                     <NA>
#>                                              Radial.Section
#>                                                      <char>
#> 1:  Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom
#> 2:  Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom
#> 3:                                                     <NA>
#> 4:                                                     <NA>
#> 5: Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom.
#> 6:                                                     <NA>
#>                                          Tangential.Section
#>                                                      <char>
#> 1:  Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom
#> 2:  Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom
#> 3:                                                     <NA>
#> 4:                                                     <NA>
#> 5: Field of view: 2.6 mm x 1.6 mm. Photograph: H.Lennstrom.
#> 6:                                                     <NA>

# Save the details to CSV
write.csv(details_df, file = "data/bishopmuseum_details.csv", row.names = FALSE)